Skip to content

Latest commit

 

History

History
65 lines (54 loc) · 1.67 KB

File metadata and controls

65 lines (54 loc) · 1.67 KB

954. Array of Doubled Pairs

Given an integer array of even length arr, return trueif it is possible to reorderarrsuch thatarr[2 * i + 1] = 2 * arr[2 * i]for every0 <= i < len(arr) / 2, orfalseotherwise.

Example 1:

Input: arr = [3,1,3,6] Output: false 

Example 2:

Input: arr = [2,1,2,6] Output: false 

Example 3:

Input: arr = [4,-2,2,-4] Output: true Explanation: We can take two groups, [-2,-4] and [2,4] to form [-2,-4,2,4] or [2,4,-2,-4]. 

Constraints:

  • 2 <= arr.length <= 3 * 104
  • arr.length is even.
  • -105 <= arr[i] <= 105

Solutions (Python)

1. Solution

classSolution: defcanReorderDoubled(self, arr: List[int]) ->bool: count= {} nums= [] forxinarr: ifx%2==0: ifxnotincount: count[x] =0count[x] +=1else: if2*xnotincount: count[2*x] =0count[2*x] -=1forx, vincount.items(): ifv<0: returnFalseelifv>0: nums.append(x) nums.sort(key=lambdax: (x>=0, abs(x))) forxinnums: ifcount[x] ==0: continueelif2*xincountandcount[x] <=count[2*x]: count[2*x] -=count[x] count[x] =0else: returnFalsereturnTrue
close